iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0

首先,確保你已經在Facebook開發者平台上建立了一個應用程式,並且取得了應用程式的App ID。接下來,你需要將Facebook的SDK整合到你的專案中。你可以使用CocoaPods或Carthage來安裝SDK。在這個例子中,我將使用CocoaPods。

首先,在終端機中進入你的專案目錄,然後執行以下指令來建立一個Podfile:

bash
Copy code
pod init
然後,編輯Podfile檔案,加入Facebook SDK的相依性:

ruby
Copy code

Podfile

platform :ios, '13.0'

target 'YourAppTarget' do
use_frameworks!

Add Facebook SDK

pod 'FacebookLogin'
pod 'FacebookCore'
end
儲存並關閉檔案,然後執行以下指令來安裝相依性:

bash
Copy code
pod install
安裝完成後,打開你的Xcode專案檔案(.xcworkspace),然後開始實作Facebook登入功能。

首先,在你的AppDelegate.swift檔案中匯入Facebook SDK:

import FacebookCore
import FacebookLogin
然後,在application(_:didFinishLaunchingWithOptions:)方法中,加入以下程式碼來設定Facebook SDK:

swift
Copy code
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
接著,在你希望觸發Facebook登入的地方,例如一個按鈕的點擊事件中,加入以下程式碼:

let loginManager = LoginManager()
loginManager.logIn(permissions: [.publicProfile, .email], viewController: self) { loginResult in
switch loginResult {
case .failed(let error):
print("Facebook登入失敗:(error)")
case .cancelled:
print("Facebook登入已取消。")
case .success(let grantedPermissions, _, _):
if grantedPermissions.contains("email") {
self.fetchFacebookUserProfile()
}
}
}
在上述程式碼中,fetchFacebookUserProfile()是一個自訂的方法,用來取得使用者的Facebook資訊。你可以在這個方法中使用Graph API來取得使用者的姓名、電子郵件等資訊。以下是一個範例:

func fetchFacebookUserProfile() {
if let token = AccessToken.current, !token.isExpired {
let request = GraphRequest(graphPath: "me", parameters: ["fields": "id, name, email"])
request.start { _, result, error in
if let error = error {
print("取得Facebook使用者資訊失敗:(error)")
} else if let userData = result as? [String: Any] {
let name = userData["name"] as? String ?? ""
let email = userData["email"] as? String ?? ""
print("Facebook使用者資訊:姓名 - (name),電子郵件 - (email)")
}
}
}
}
以上程式碼中,當使用者成功登入並且授權了電子郵件權限後,會呼叫fetchFacebookUserProfile()方法來取得使用者的姓名和電子郵件。

請確保在Info.plist檔案中加入以下內容,用於設定Facebook登入所需的URL Scheme:

CFBundleURLTypes


CFBundleURLSchemes

fb{your-app-id}



FacebookAppID
{your-app-id}
FacebookDisplayName
{your-app-name}
在上述程式碼中,將{your-app-id}替換為你在Facebook開發者平台上建立應用程式時獲得的App ID,{your-app-name}替換為你的應用程式名稱。


上一篇
iOS 開發:line第三方登入
下一篇
iOS 開發:App Store 手動簽發憑證
系列文
App從開發到上架30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言